from django import forms
from django.contrib.auth.models import User

from sshauth.models import CaptchaModel


class RegisterForm(forms.Form):
    username = forms.CharField(max_length=20, min_length=2,
                               error_messages={'required': '用户名不能为空', 'min_length': '用户名长度不能小于2',
                                               'max_length': '用户名长度不能大于20'})
    password = forms.CharField(max_length=20)
    email = forms.EmailField(error_messages={'required': '邮箱不能为空', 'invalid': '邮箱格式不正确'})
    captcha = forms.CharField(max_length=4, min_length=4, error_messages={'required': '验证码不能为空'})


    def clean_email(self):
        email = self.cleaned_data.get('email')
        print(email)
        exist = User.objects.filter(email=email).exists()
        if exist:
            raise forms.ValidationError('邮箱已被注册')
        return email
    def clean_captcha(self):
        captcha = self.cleaned_data.get('captcha')
        email = self.cleaned_data.get('email')
        print(email, captcha)
        captcha_model = CaptchaModel.objects.filter(email=email, captcha=captcha).first()
        if not captcha_model:
            raise forms.ValidationError('验证码错误')
        captcha_model.delete()
        return captcha

class LoginForm(forms.Form):
    username = forms.CharField(max_length=20, min_length=2,
                               error_messages={"required": '用户名不能为空', 'invalid':'请传入正确用户名'})
    password = forms.CharField(max_length=20)
    remember = forms.BooleanField(required=False)